home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / hc / xcmd_eff.sit / Effect XCMD / card_4903.txt < prev    next >
Text File  |  1988-01-25  |  4KB  |  148 lines

  1. -- card: 4903 from stack: in
  2. -- bmap block id: 0
  3. -- flags: 4000
  4. -- background id: 2583
  5. -- name: 
  6. ----- HyperTalk script -----
  7. on opencard
  8.   set the scroll of card field 1 to 0
  9. end opencard
  10.  
  11.  
  12.  
  13. -- part 1 (field)
  14. -- low flags: 01
  15. -- high flags: 0007
  16. -- rect: left=7 top=114 right=332 bottom=504
  17. -- title width / last selected line: 0
  18. -- icon id / first selected line: 0 / 0
  19. -- text alignment: 0
  20. -- font id: 3
  21. -- text size: 9
  22. -- style flags: 0
  23. -- line height: 12
  24. -- part name: source code
  25. ----- HyperTalk script -----
  26. on mousedown
  27.   answer "Sorry, it's lockedΓÇö FOR YOUR PROTECTION!"
  28. end mousedown
  29.  
  30.  
  31. -- part 2 (button)
  32. -- low flags: 00
  33. -- high flags: A002
  34. -- rect: left=392 top=86 right=106 bottom=504
  35. -- title width / last selected line: 0
  36. -- icon id / first selected line: 0 / 0
  37. -- text alignment: 1
  38. -- font id: 3
  39. -- text size: 9
  40. -- style flags: 256
  41. -- line height: 12
  42. -- part name: Copy to clipboard
  43. ----- HyperTalk script -----
  44. on mouseUp
  45.   set the locktext of card field 1 to false
  46.   get the rect of card field 1
  47.   set the scroll of card field 1 to 10000
  48.   click at (item 1 of it + 2),(item 4 of it - 4)
  49.   set the scroll of card field 1 to 0
  50.   click at (item 1 of it+2),(item 2 of it + 4) with shiftkey
  51.   type "c" with commandkey
  52.   click at (item 1 of it + 2),(item 2 of it + 4) -- deselect
  53.   click at -1,-1 -- remove blinking bar
  54.   set the locktext of card field 1 to true
  55. end mouseUp
  56.  
  57.  
  58.  
  59. -- part 3 (field)
  60. -- low flags: 01
  61. -- high flags: 0002
  62. -- rect: left=7 top=86 right=107 bottom=387
  63. -- title width / last selected line: 0
  64. -- icon id / first selected line: 0 / 0
  65. -- text alignment: 1
  66. -- font id: 3
  67. -- text size: 14
  68. -- style flags: 16640
  69. -- line height: 18
  70. -- part name: 
  71.  
  72.  
  73. -- part contents for card part 1
  74. ----- text -----
  75. {$R-}
  76.  
  77. (*      SOURCE CODE   "Effect.p"    1/19/88
  78.  
  79. Effect -- a routine to execute hypertalk in a field.  Copyright ┬⌐ 1988 by Dan Wood.
  80. This source code is provided to the public for educational purposes.  It is not supported.
  81. Please don't laugh at my Pascal!  At least it works! (I think.)
  82. Are you happy, Scott?  Here's some real source code!  No need to fearΓǪ
  83. Raines, this should serve as inspiration to you.
  84. *** I encourage all XCMD writers to put some of their source code into the public view,
  85. *** as it is very helpful to see what others are doing and how they are doing it!
  86.  
  87. To compile in MPW Pascal, use the following two lines (replace "MyStack" with your stack name)
  88.  
  89. pascal Effect.p
  90. link -m ENTRYPOINT -o MyStack -rt XCMD=401 -sn Main=Effect Effect.p.o Γêé
  91.   "{MPW}"Libraries:Interface.o "{MPW}"PLibraries:PasLib.o
  92.  
  93. *)
  94.  
  95. {$S Effect }     { Segment name must be the same as the command name. }
  96. UNIT DummyUnit;
  97. INTERFACE
  98. USES MemTypes, QuickDraw, OSIntf, ToolIntf, HyperXCmd;
  99. PROCEDURE EntryPoint(paramPtr: XCmdPtr);
  100. IMPLEMENTATION
  101.  
  102. TYPE
  103.     Str31 = String[31];
  104.  
  105. PROCEDURE Effect(paramPtr: XCmdPtr);                             FORWARD;
  106.  
  107. VAR
  108.     Str:Str255;
  109.     ScanPtr: Ptr;
  110.     theZeroStr: Handle;
  111.     
  112.   PROCEDURE EntryPoint(paramPtr: XCmdPtr);
  113.   BEGIN
  114.     Effect(paramPtr);
  115.   END;
  116.  
  117.   PROCEDURE Effect(paramPtr: XCmdPtr);
  118.        
  119.     {$I XCmdGlue.inc }
  120.     
  121.  
  122.     BEGIN
  123.         theZeroStr:=paramPtr^.params[1]; { this is the effect name }
  124.         ReturnToPas(TheZeroStr^,Str);
  125.         theZeroStr := EvalExpr(concat('card field "',Str,'" of card "Effects Card"'));
  126.         { now we have the text to run as hypertalk }
  127.         HLock(theZeroStr);
  128.         ScanPtr := theZeroStr^;
  129.         WHILE ScanPtr^ <> 0 do BEGIN
  130.             while ScanPtr^ = ord(' ') do BEGIN
  131.                 ScanPtr := Ptr(LongInt(ScanPtr)+1); { and skip the space }
  132.             END; { while }
  133.                     { now leading blanks skipped }
  134.             ReturnToPas(ScanPtr,str);
  135.             ScanToReturn(ScanPtr); { bump up pointer }
  136.             if (ord(str[1]) <> ord('-')) and (ord(str[2]) <> ord('-'))
  137.             then SendCardMessage(str);
  138.             while ScanPtr^ = 13 do BEGIN
  139.                 ScanPtr := Ptr(LongInt(ScanPtr)+1); { and skip the CR }
  140.             END; { while }
  141.         END;
  142.         DisposHandle(theZeroStr); { Done with source string }
  143.     END;
  144. END.
  145.  
  146. -- part contents for card part 3
  147. ----- text -----
  148. Source code for ΓÇ£EffectΓÇ¥